
class Animal {
    public String name;
    public int age;

    public void eat() {
        System.out.println("父类成员方法");
    }
}

class Cat extends Animal {
    public String hair;

    public void cat(){
        System.out.println("子类成员方法");
    }
}

public class TestDemo1 {

    //3.父类作为返回类接收子类对象的引用
    public Animal fun() {
        return new Cat();
    }
    public static void main(String[] args) {

    }
    //2.父类做为参数的形式接收子类的引用
    public static  void pack(Animal cat) {

    }

    public static void main2(String[] args) {
        pack(new Cat());
    }

    //1.向上转型  父类的引用指向了子类的对象 父类还是只能访问自己的成员
    public static void main1(String[] args) {
        Animal animal = new Cat();
    }
}
